Solution /** * Definition for a binary tree node.
Solution Recursive /** * Definition for a binary tree node. searchPath(root->right, s, result); } } }; Iterative /** * Definition for a binary tree node
Binary Tree Paths Given a binary tree, return all root-to-leaf paths. 代码: go: /** * Definition for a binary tree node.
Invert Binary Tree Invert a binary tree. / \ 7 2 / \ / \ 9 6 3 1 思路: 递归求解翻转每个不为nil的节点 代码: go: /** * Definition for a binary tree node
Balanced Binary Tree Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as: a binary tree in which the depth of the Example 1: Given the following tree [3,9,20,null,null,15,7]: 3 / \ 9 20 / \ 15 7 Example 2: Given the following tree [1,2,2,3,3,null,null,4,4]: 1 / \ 2 2 / \ 代码: go: /** * Definition for a binary tree node.
问题:二叉树的最深深度 class Solution { public: void dfs(TreeNode *root,int step,int &MAX) { if(root==NULL) { if(MAX<step) MAX=step; return ; } dfs(root->left,step+1); dfs(root->right,step+1);
题意:二叉树的最小深度 注意 1.当root为空的时候直接返回0,因为MIN赋值很大,所以如果不单独预判的话会返回MIN 2.判断树的深度应该到叶子节点,也就是左右子结点都为空的那个结点 3.树的深度的根节点深度为1 class Solution { public: void dfs(TreeNode *root,int &MIN,int step) { if(root==NULL) return ; if(root->
题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the C++参考示例代码: /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left
这题有意思的是,并不能直接将求最大深度的max改为min就完了,有很多坑在里面。一开始我以为只要将[],[0],[1,2]等情况考虑掉就可以了,其实在只有一边又子节点的情况下,是仍然需要遍历的。 例如:
问题描述 Given a binary tree, return the inorder traversal of its nodes’ values. For example: Given binary tree [1,null,2,3], 1 \ 2 / 3 return [1,3,2]. 2. /** * Definition for a binary tree node.
二叉树的前序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode
Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. Example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its 代码: go: /** * Definition for a binary tree node.
Binary Tree Postorder Traversal Given a binary tree, return the postorder traversal of its nodes' values 代码: go: /** * Definition for a binary tree node.
问题:二叉树中序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode
想到了中序遍历整棵树,那么结果应该是升序的。直接套用之前的中序遍历代码,稍加修改即可。 网上的答案很多都在分析负无穷正无穷(效率高?),我觉得能和之前中序遍历串起来就足够了。
self.generate(root, result) return result 迭代 和前序后序不同,需要遵循上面的思路 class Solution: # @param root, a tree
二叉树的后序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode
Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. 参考代码: Java /** * Definition for a binary tree node.
题目 Given the root of a binary search tree with distinct values, modify it so that every node has a new value equal to the sum of the values of the original tree that are greater than or equal to node.val As a reminder, a binary search tree is a tree that satisfies these constraints: The left subtree of a Both the left and right subtrees must also be binary search trees. Example 1: ? The given tree is a binary search tree. 分析 题意:从右到左、下到上累加和,赋给当前节点。
Serialize and Deserialize Binary Tree Serialization is the process of converting a data structure or Design an algorithm to serialize and deserialize a binary tree. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure. ,null,null,4,5]" Clarification: The above format is the same as how LeetCode serializes a binary tree